home *** CD-ROM | disk | FTP | other *** search
/ Champak 138 / Volume 138 Aug 19 2011 - Damaged.iso / Games / shadez.swf / scripts / Local / Game / World / CLandscape.as < prev    next >
Encoding:
Text File  |  2011-08-19  |  22.0 KB  |  615 lines

  1.  
  2. {
  3.    if(true)
  4.    {
  5.       CLandscape = ┬º┬ºnewclass(CLandscape,EventDispatcher);
  6.    }
  7. }
  8.  
  9. package Local.Game.World
  10. {
  11.    import Local.Draw.CBitmapStripManager;
  12.    import Local.Draw.CExplodeBMD;
  13.    import Local.Draw.CExplodeBMDParticle;
  14.    import flash.display.BitmapData;
  15.    import flash.events.EventDispatcher;
  16.    import flash.geom.Matrix;
  17.    import flash.geom.Point;
  18.    import flash.geom.Rectangle;
  19.    
  20.    public class CLandscape extends EventDispatcher
  21.    {
  22.       
  23.       public static const zPoint:Point;
  24.       
  25.       {
  26.          if(true)
  27.          {
  28.             zPoint = new Point(0,0);
  29.          }
  30.       }
  31.       
  32.       private var mAltLength:Number;
  33.       
  34.       private var mAverages:Array;
  35.       
  36.       private var mStripManager:CBitmapStripManager;
  37.       
  38.       private var dShake:CPosition;
  39.       
  40.       private var wAverages:Array;
  41.       
  42.       public var mTerrainID:String;
  43.       
  44.       private var mAltitudes:Array;
  45.       
  46.       public var mExplodeBMD:CExplodeBMD;
  47.       
  48.       private var mWorld:CWorld;
  49.       
  50.       private var mNormals:Array;
  51.       
  52.       private var wAltitudes:Array;
  53.       
  54.       private var wNormals:Array;
  55.       
  56.       public function CLandscape(param1:CWorld)
  57.       {
  58.          if(true)
  59.          {
  60.             super();
  61.             if(true)
  62.             {
  63.                mWorld = param1;
  64.                if(true)
  65.                {
  66.                   mStripManager = new CBitmapStripManager();
  67.                   if(true)
  68.                   {
  69.                      mAltitudes = mStripManager.mFineAltitudes;
  70.                   }
  71.                   mAltLength = mAltitudes.length;
  72.                }
  73.                CreateAlts();
  74.             }
  75.             mExplodeBMD = new CExplodeBMD(mDrawPosition);
  76.          }
  77.       }
  78.       
  79.       private function Process_Explosion() : void
  80.       {
  81.       }
  82.       
  83.       public function GetAltitudes(param1:Number, param2:Number) : Array
  84.       {
  85.          if(true)
  86.          {
  87.             return param1 > param2 ? wAltitudes.slice(Math.floor(param2),Math.floor(param1)) : wAltitudes.slice(Math.floor(param1),Math.floor(param2));
  88.          }
  89.          ┬º┬ºgoto(addr14);
  90.       }
  91.       
  92.       public function get mDrawPosition() : Point
  93.       {
  94.          return mStripManager.mPosition;
  95.       }
  96.       
  97.       public function CreateAlts() : void
  98.       {
  99.          var _loc1_:int = 0;
  100.          var _loc2_:Number = NaN;
  101.          var _loc3_:Number = NaN;
  102.          if(true)
  103.          {
  104.             SmoothAltitudes();
  105.             if(true)
  106.             {
  107.                wAltitudes = CreateWrapArray(mAltitudes);
  108.                mNormals = new Array();
  109.             }
  110.             _loc1_ = 0;
  111.          }
  112.          while(_loc1_ < mAltLength)
  113.          {
  114.             _loc2_ = Number(wAltitudes[mAltLength + _loc1_ - 1]);
  115.             _loc3_ = Number(wAltitudes[mAltLength + _loc1_ + 1]);
  116.             mNormals[_loc1_] = CPosition.NORMALIZE(new CPosition(_loc3_ - _loc2_,-2));
  117.             _loc1_++;
  118.          }
  119.          wNormals = CreateWrapArray(mNormals);
  120.       }
  121.       
  122.       public function EndRender() : void
  123.       {
  124.          if(true)
  125.          {
  126.             ┬º┬ºpush(mStripManager);
  127.             if(true)
  128.             {
  129.                ┬º┬ºpop().EndRender();
  130.                ┬º┬ºpush(mStripManager);
  131.             }
  132.             ┬º┬ºpop().mBMD.unlock();
  133.          }
  134.       }
  135.       
  136.       public function CollideLine(param1:Number, param2:Number, param3:Number, param4:Number) : CPosition
  137.       {
  138.          var _loc5_:* = 0;
  139.          var _loc6_:* = 0;
  140.          var _loc7_:* = NaN;
  141.          var _loc8_:* = 0;
  142.          var _loc9_:* = NaN;
  143.          var _loc10_:int = 0;
  144.          var _loc11_:* = NaN;
  145.          var _loc12_:int = 0;
  146.          if(true)
  147.          {
  148.             ┬º┬ºpush(int(Math.floor(param1) + mAltLength));
  149.             if(true)
  150.             {
  151.                _loc5_ = ┬º┬ºpop();
  152.                if(true)
  153.                {
  154.                   ┬º┬ºpush(int(Math.floor(param3) + mAltLength));
  155.                   if(true)
  156.                   {
  157.                      _loc6_ = ┬º┬ºpop();
  158.                      if(true)
  159.                      {
  160.                         ┬º┬ºpush(Math.abs(_loc6_ - _loc5_));
  161.                         if(true)
  162.                         {
  163.                            _loc7_ = ┬º┬ºpop();
  164.                            if(true)
  165.                            {
  166.                               ┬º┬ºpush(_loc6_);
  167.                               if(true)
  168.                               {
  169.                                  if(┬º┬ºpop() >= _loc5_)
  170.                                  {
  171.                                     if(true)
  172.                                     {
  173.                                        ┬º┬ºpush(1);
  174.                                        if(true)
  175.                                        {
  176.                                           addr79:
  177.                                           ┬º┬ºpush(┬º┬ºpop());
  178.                                        }
  179.                                        _loc8_ = ┬º┬ºpop();
  180.                                     }
  181.                                     ┬º┬ºpush(param4);
  182.                                     if(true)
  183.                                     {
  184.                                        ┬º┬ºpush(┬º┬ºpop() - param2);
  185.                                        if(true)
  186.                                        {
  187.                                           ┬º┬ºpush(┬º┬ºpop() / _loc7_);
  188.                                           if(true)
  189.                                           {
  190.                                              ┬º┬ºpush(┬º┬ºpop());
  191.                                           }
  192.                                           _loc9_ = ┬º┬ºpop();
  193.                                           addr96:
  194.                                           _loc10_ = _loc5_;
  195.                                           addr97:
  196.                                           ┬º┬ºpush(param2);
  197.                                           addr95:
  198.                                           addr94:
  199.                                        }
  200.                                        ┬º┬ºpush(┬º┬ºpop());
  201.                                     }
  202.                                     _loc11_ = ┬º┬ºpop();
  203.                                     addr102:
  204.                                     _loc12_ = _loc7_;
  205.                                     loop0:
  206.                                     while(true)
  207.                                     {
  208.                                        ┬º┬ºpush(_loc12_);
  209.                                        ┬º┬ºpush(0);
  210.                                        while(true)
  211.                                        {
  212.                                           if(┬º┬ºpop() < ┬º┬ºpop())
  213.                                           {
  214.                                              addr152:
  215.                                              return null;
  216.                                           }
  217.                                           ┬º┬ºpush(_loc11_);
  218.                                           if(false)
  219.                                           {
  220.                                              break;
  221.                                           }
  222.                                           if(┬º┬ºpop() > wAltitudes[_loc10_])
  223.                                           {
  224.                                              if(true)
  225.                                              {
  226.                                                 return new CPosition(_loc10_ - mAltLength,_loc11_);
  227.                                              }
  228.                                              ┬º┬ºgoto(addr152);
  229.                                           }
  230.                                           ┬º┬ºpush(_loc10_);
  231.                                           ┬º┬ºpush(_loc8_);
  232.                                           if(true)
  233.                                           {
  234.                                              ┬º┬ºpush(┬º┬ºpop() + ┬º┬ºpop());
  235.                                              if(true)
  236.                                              {
  237.                                                 _loc10_ = ┬º┬ºpop();
  238.                                                 if(false)
  239.                                                 {
  240.                                                    continue loop0;
  241.                                                 }
  242.                                                 ┬º┬ºpush(_loc11_ + _loc9_);
  243.                                              }
  244.                                              ┬º┬ºpush(┬º┬ºpop());
  245.                                              break;
  246.                                           }
  247.                                           continue;
  248.                                        }
  249.                                        _loc11_ = ┬º┬ºpop();
  250.                                     }
  251.                                     addr101:
  252.                                     addr100:
  253.                                  }
  254.                                  else
  255.                                  {
  256.                                     ┬º┬ºpush(-1);
  257.                                  }
  258.                                  ┬º┬ºgoto(addr79);
  259.                               }
  260.                               ┬º┬ºgoto(addr95);
  261.                            }
  262.                            ┬º┬ºgoto(addr94);
  263.                         }
  264.                         ┬º┬ºgoto(addr101);
  265.                      }
  266.                      ┬º┬ºgoto(addr97);
  267.                   }
  268.                   ┬º┬ºgoto(addr96);
  269.                }
  270.                ┬º┬ºgoto(addr100);
  271.             }
  272.          }
  273.          ┬º┬ºgoto(addr102);
  274.       }
  275.       
  276.       public function set mDrawPosition(param1:Point) : void
  277.       {
  278.          mStripManager.mPosition = param1;
  279.       }
  280.       
  281.       public function GetAltitudesQ(param1:Number, param2:Number) : Array
  282.       {
  283.          return wAltitudes.slice(param1,param2);
  284.       }
  285.       
  286.       public function AddExplodeBMD(param1:BitmapData, param2:Matrix, param3:Point, param4:Number = 15) : void
  287.       {
  288.          mExplodeBMD.AddBMD(param1,param2,param3,param4);
  289.       }
  290.       
  291.       public function GetNormal(param1:Number) : CPosition
  292.       {
  293.          return wNormals[Math.floor(param1 + mAltLength)];
  294.       }
  295.       
  296.       public function QCollideLine(param1:Number, param2:Number, param3:Number, param4:Number) : CPosition
  297.       {
  298.          return CollideLine(param1,param2,param3,param4);
  299.       }
  300.       
  301.       public function Render() : BitmapData
  302.       {
  303.          ┬º┬ºpush(mStripManager);
  304.          if(true)
  305.          {
  306.             ┬º┬ºpop().Render();
  307.             mExplodeBMD.Render(mStripManager.mBMD);
  308.             ┬º┬ºpush(mStripManager);
  309.          }
  310.          return ┬º┬ºpop().mBMD;
  311.       }
  312.       
  313.       public function Process() : void
  314.       {
  315.          mStripManager.Process();
  316.          mExplodeBMD.Process();
  317.          Process_Explosion();
  318.       }
  319.       
  320.       public function get mWorldArea() : Rectangle
  321.       {
  322.          return new Rectangle(mDrawPosition.x,mDrawPosition.y,mStripManager.mBMD.width,mStripManager.mBMD.height);
  323.       }
  324.       
  325.       public function get mCentreDrawPosition() : CPosition
  326.       {
  327.          return new CPosition(mStripManager.mPosition.x + mStripManager.mBMD.width / 2,mStripManager.mPosition.y + mStripManager.mBMD.height / 2);
  328.       }
  329.       
  330.       public function Resize(param1:int, param2:int) : void
  331.       {
  332.          if(true)
  333.          {
  334.             mStripManager.Resize(param1,param2);
  335.             CExplodeBMDParticle.mKillHeight = param2;
  336.          }
  337.       }
  338.       
  339.       public function get mWidth() : int
  340.       {
  341.          return mAltLength;
  342.       }
  343.       
  344.       public function LineOfSight(param1:Number, param2:Number, param3:Number, param4:Number, param5:int = 10) : Boolean
  345.       {
  346.          var _loc6_:* = NaN;
  347.          var _loc7_:* = 0;
  348.          var _loc8_:* = 0;
  349.          var _loc9_:* = NaN;
  350.          ┬º┬ºpush(param1);
  351.          ┬º┬ºpush(param3);
  352.          if(true)
  353.          {
  354.             if(┬º┬ºpop() > ┬º┬ºpop())
  355.             {
  356.                addr32:
  357.                ┬º┬ºpush(param2);
  358.                ┬º┬ºpush(param4);
  359.                if(true)
  360.                {
  361.                   ┬º┬ºpush((┬º┬ºpop() - ┬º┬ºpop()) * param5);
  362.                   ┬º┬ºpush(param1);
  363.                }
  364.                _loc9_ = ┬º┬ºpop() / (┬º┬ºpop() - param3);
  365.                ┬º┬ºpush(int(Math.floor(param3) + mAltLength));
  366.                if(true)
  367.                {
  368.                   _loc8_ = ┬º┬ºpop();
  369.                   ┬º┬ºpush(int(Math.floor(param1) + mAltLength));
  370.                }
  371.                _loc7_ = ┬º┬ºpop();
  372.                _loc6_ = param4;
  373.                loop1:
  374.                while(true)
  375.                {
  376.                   ┬º┬ºpush(_loc8_);
  377.                   if(true)
  378.                   {
  379.                      if(┬º┬ºpop() <= _loc7_)
  380.                      {
  381.                         ┬º┬ºpush(_loc6_);
  382.                         if(true)
  383.                         {
  384.                            if(┬º┬ºpop() > wAltitudes[_loc8_])
  385.                            {
  386.                               ┬º┬ºpush(false);
  387.                               if(true)
  388.                               {
  389.                                  return ┬º┬ºpop();
  390.                               }
  391.                            }
  392.                            else
  393.                            {
  394.                               ┬º┬ºpush(_loc8_);
  395.                               if(true)
  396.                               {
  397.                                  ┬º┬ºpush(┬º┬ºpop() + param5);
  398.                                  if(true)
  399.                                  {
  400.                                     ┬º┬ºpush(┬º┬ºpop());
  401.                                     if(true)
  402.                                     {
  403.                                        _loc8_ = ┬º┬ºpop();
  404.                                        ┬º┬ºpush(_loc6_);
  405.                                        if(true)
  406.                                        {
  407.                                           ┬º┬ºpush(_loc9_);
  408.                                           if(true)
  409.                                           {
  410.                                              ┬º┬ºpush(┬º┬ºpop() + ┬º┬ºpop());
  411.                                              if(true)
  412.                                              {
  413.                                                 ┬º┬ºpush(┬º┬ºpop());
  414.                                                 if(true)
  415.                                                 {
  416.                                                    continue;
  417.                                                 }
  418.                                                 while(true)
  419.                                                 {
  420.                                                    if(┬º┬ºpop() > wAltitudes[_loc8_])
  421.                                                    {
  422.                                                       return false;
  423.                                                    }
  424.                                                    ┬º┬ºpush(_loc8_);
  425.                                                    break loop1;
  426.                                                 }
  427.                                                 addr145:
  428.                                              }
  429.                                              while(true)
  430.                                              {
  431.                                                 ┬º┬ºpush(┬º┬ºpop());
  432.                                                 addr155:
  433.                                                 while(true)
  434.                                                 {
  435.                                                    _loc8_ = ┬º┬ºpop();
  436.                                                    ┬º┬ºpush(_loc6_);
  437.                                                    addr157:
  438.                                                    while(true)
  439.                                                    {
  440.                                                       ┬º┬ºpush(_loc9_);
  441.                                                    }
  442.                                                 }
  443.                                              }
  444.                                              addr154:
  445.                                           }
  446.                                           while(true)
  447.                                           {
  448.                                              ┬º┬ºpush(┬º┬ºpop() + ┬º┬ºpop());
  449.                                              addr159:
  450.                                              while(true)
  451.                                              {
  452.                                                 ┬º┬ºpush(┬º┬ºpop());
  453.                                                 addr160:
  454.                                                 while(true)
  455.                                                 {
  456.                                                    _loc6_ = ┬º┬ºpop();
  457.                                                    addr168:
  458.                                                    loop0:
  459.                                                    while(true)
  460.                                                    {
  461.                                                       ┬º┬ºpush(_loc8_);
  462.                                                       addr169:
  463.                                                       while(true)
  464.                                                       {
  465.                                                          if(┬º┬ºpop() > _loc7_)
  466.                                                          {
  467.                                                             break loop0;
  468.                                                          }
  469.                                                          ┬º┬ºgoto(addr145);
  470.                                                          ┬º┬ºpush(_loc6_);
  471.                                                          continue loop0;
  472.                                                       }
  473.                                                    }
  474.                                                    ┬º┬ºgoto(addr172);
  475.                                                 }
  476.                                              }
  477.                                           }
  478.                                        }
  479.                                        ┬º┬ºgoto(addr157);
  480.                                     }
  481.                                     ┬º┬ºgoto(addr155);
  482.                                  }
  483.                                  ┬º┬ºgoto(addr159);
  484.                               }
  485.                               ┬º┬ºgoto(addr169);
  486.                            }
  487.                            ┬º┬ºgoto(addr172);
  488.                         }
  489.                         ┬º┬ºgoto(addr160);
  490.                      }
  491.                      addr172:
  492.                      return true;
  493.                   }
  494.                   break;
  495.                }
  496.                while(true)
  497.                {
  498.                   ┬º┬ºgoto(addr154);
  499.                }
  500.             }
  501.             else
  502.             {
  503.                ┬º┬ºpush(param4);
  504.                if(true)
  505.                {
  506.                   ┬º┬ºpush(param2);
  507.                   if(true)
  508.                   {
  509.                      addr141:
  510.                      ┬º┬ºpush(┬º┬ºpop() - ┬º┬ºpop());
  511.                      if(true)
  512.                      {
  513.                         ┬º┬ºpush(┬º┬ºpop() * param5);
  514.                         if(true)
  515.                         {
  516.                            addr120:
  517.                            ┬º┬ºpush(┬º┬ºpop() / (param3 - param1));
  518.                         }
  519.                         _loc9_ = ┬º┬ºpop();
  520.                         ┬º┬ºpush(int(Math.floor(param1) + mAltLength));
  521.                         if(true)
  522.                         {
  523.                            _loc8_ = ┬º┬ºpop();
  524.                            ┬º┬ºpush(int(Math.floor(param3) + mAltLength));
  525.                         }
  526.                         _loc7_ = ┬º┬ºpop();
  527.                         ┬º┬ºpush(param2);
  528.                      }
  529.                      _loc6_ = ┬º┬ºpop();
  530.                      ┬º┬ºgoto(addr168);
  531.                   }
  532.                   ┬º┬ºgoto(addr120);
  533.                }
  534.                ┬º┬ºgoto(addr141);
  535.             }
  536.             ┬º┬ºgoto(addr168);
  537.          }
  538.          ┬º┬ºgoto(addr32);
  539.       }
  540.       
  541.       private function SmoothAltitudes() : void
  542.       {
  543.          var _loc1_:int = 0;
  544.          _loc1_ = 1;
  545.          while(_loc1_ < mAltLength - 1)
  546.          {
  547.             mAltitudes[_loc1_] = ((mAltitudes[_loc1_ - 1] + mAltitudes[_loc1_ + 1]) / 2 + mAltitudes[_loc1_]) / 2;
  548.             _loc1_++;
  549.          }
  550.       }
  551.       
  552.       public function Scroll(param1:Number, param2:Number = 0) : void
  553.       {
  554.          mStripManager.Scroll(param1);
  555.       }
  556.       
  557.       private function CreateWrapArray(param1:Array) : Array
  558.       {
  559.          var _loc2_:Array = null;
  560.          var _loc3_:* = NaN;
  561.          var _loc4_:Number = NaN;
  562.          var _loc5_:int = 0;
  563.          _loc2_ = new Array();
  564.          if(true)
  565.          {
  566.             ┬º┬ºpush(Number(param1[0]));
  567.             if(true)
  568.             {
  569.                _loc3_ = ┬º┬ºpop();
  570.                if(true)
  571.                {
  572.                   addr45:
  573.                   _loc4_ = Number(param1[mAltLength - 1]);
  574.                }
  575.                _loc5_ = 0;
  576.                ┬º┬ºgoto(addr48);
  577.             }
  578.             ┬º┬ºgoto(addr45);
  579.          }
  580.          addr48:
  581.          while(_loc5_ < mAltLength)
  582.          {
  583.             _loc2_[_loc5_ + mAltLength * 0] = _loc3_;
  584.             _loc2_[_loc5_ + mAltLength * 1] = param1[_loc5_];
  585.             _loc2_[_loc5_ + mAltLength * 2] = _loc4_;
  586.             _loc5_++;
  587.          }
  588.          return _loc2_;
  589.       }
  590.       
  591.       public function GetAltitude(param1:Number) : Number
  592.       {
  593.          return wAltitudes[Math.floor(param1 + mAltLength)];
  594.       }
  595.       
  596.       public function Explosion(param1:CPosition, param2:Number) : void
  597.       {
  598.       }
  599.       
  600.       public function StartRender() : void
  601.       {
  602.          if(true)
  603.          {
  604.             ┬º┬ºpush(mStripManager);
  605.             if(true)
  606.             {
  607.                ┬º┬ºpop().mBMD.lock();
  608.                ┬º┬ºpush(mStripManager);
  609.             }
  610.             ┬º┬ºpop().StartRender();
  611.          }
  612.       }
  613.    }
  614. }
  615.